package com.fzh.service;

import java.util.List;

import com.fzh.pojo.dto.ProductLinkImageDTO;
import com.fzh.pojo.entity.Product;

public interface ProductService {
	
	/**
	 * 查询出所有的商品信息
	 * @return
	 */
	public List<Product> queryAllProduct(Integer setValue,Integer limit,String name,String f_ptid,String isSoldOut,String isRecommendMain);
	
	/**
	 * 查询商品表里的数据条数
	 * @return
	 */
	public int queryProductCounts(String name,String f_ptid,String isSoldOut,String isRecommendMain);

	/**
	 * 添加商品的信息
	 * @param product
	 * @return
	 */
	public Boolean addProduct(Product product);

	/**
	 * 编辑商品根据id
	 * @param product
	 * @return
	 */
	public Boolean editProductById(Product product);

	/**
	 * 批量的删除商品
	 * @param ids
	 * @return
	 */
	public Boolean delAllProductByIds(String id);
	
	/**
	 * 删除单个商品根据id
	 * @param id
	 * @return
	 */
	public Boolean delProductById(Integer id);

	/**
	 * 编辑商品的是否在售状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Boolean editProductIsSoldOutSwitchById(Integer id, Integer number);

	/**
	 * 编辑商品的是否允许删除状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Boolean editProductIsDelSwitchById(Integer id, Integer number);

	/**
	 * 编辑商品的是否推荐到首页的状态
	 * @param id
	 * @param number
	 * @return
	 */
	public Boolean editProductIsRecommendMainSwitchById(Integer id, Integer number);

	/**
	 * 编辑商品是否显示到滚动图
	 * @param id
	 * @param number
	 * @return
	 */
	public Boolean editProductIsRollImgSwitchById(Integer id, Integer number);

	/**
	 * 查询出所有商品，用于商品图片列表下拉框内添加
	 * @return
	 */
	public List<Product> queryAllProductWitchImagesSelect();

	/**
	 * 查询出商品信息根据id，用于把数据添加到购物车页面input标签内
	 * @param id
	 * @return
	 */
	public Product queryProductByIdWitchCartInput(Integer id);

	/**
	 * 编辑商品的主图，与图片列表联系
	 * @param f_pid
	 * @param img
	 */
	public void editProductImgMainById(Integer f_pid, String img);
	
	/**
	 * 查询商品根据id用于商品类型列表里的删除功能做处理
	 * @param id
	 * @return
	 */
	public Boolean queryProductTypeBelowIsProductById(Integer id);

	/**
	 * {前台}查询所有商品
	 * @return
	 */
	public List<Product> queryAllProduct();

	/**
	 * 查询出前j条数据根据id降序排列
	 * @param i  从第几条显示
	 * @param j  显示多少条
	 * @return
	 */
	public List<Product> queryAllNewProsuctByIdDescF(int i, int j);
	
	/**
	 * 查询轮播图商品
	 * @return
	 */
	public List<Product> selectBannerPro();

	/**
	 * 查询推荐商品
	 * @return
	 */
	public List<Product> selectProductTJ();
	
	/**
	 * 根据id查询商品详情 
	 * @return
	 */
	public List<ProductLinkImageDTO> selectProductDetail(int id);
	
	/**
	 * 根据id查询商品详情信息
	 * @param id
	 * @return
	 */
	public Product selectProductDetailXX(int id);
	
	/**
	 * 查询商品分类里面全部商品根据分类id查询商品表里面的f_uid
	 * @param id
	 * @return
	 */
	public List<Product> selectProductTypeList(Integer id);
	
	/**
	 * 查询根据name模糊查询
	 * @param id
	 * @return
	 */
	public List<Product> selectProductTypeListMh(Product product);
	
	
}
